﻿using HDS.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HDS.IService.DistributorApi
{
    public interface IDistributorApiService
    {
        /// <summary>
        /// 初始化分销商Config
        /// </summary>
        /// <param name="distributor"></param>
        /// <returns></returns>
        Task InitConfig(string distributor);

        /// <summary>
        /// 推送确认有房
        /// </summary>
        /// <param name="distributor"></param>
        /// <param name="distributorOrderId"></param>
        /// <param name="orderId"></param>
        /// <returns></returns>
        Task<ResultData<string>> PushConfirmRoom(string distributorOrderId, string orderId, int updatedBy, string updatedByName);

        /// <summary>
        /// 推送酒店确认号
        /// </summary>
        /// <param name="distributor"></param>
        /// <param name="distributorOrderId"></param>
        /// <param name="orderId"></param>
        /// <param name="hotelConfirmNo"></param>
        /// <returns></returns>
        Task<ResultData<string>> PushHotelConfirmNo(string distributorOrderId, string orderId, string hotelConfirmNo, int updatedBy, string updatedByName);

        /// <summary>
        /// 推送酒店信息
        /// </summary>
        /// <param name="distributor"></param>
        /// <param name="hotelId"></param>
        /// <param name="compareMd5"></param>
        /// <param name="updatedBy"></param>
        /// <param name="updatedByName"></param>
        /// <returns></returns>
        Task<ResultData<string>> PushHotelInfo(int hotelId, bool compareMd5, int updatedBy, string updatedByName);

        /// <summary>
        /// 推送删除酒店
        /// </summary>
        /// <param name="hotelId"></param>
        /// <param name="updatedBy"></param>
        /// <param name="updatedByName"></param>
        /// <returns></returns>
        Task<ResultData<string>> PushDeleteHotel(int hotelId, int updatedBy, string updatedByName);

        /// <summary>
        /// 推送房型信息
        /// </summary>
        /// <param name="hotelId"></param>
        /// <param name="compareMd5"></param>
        /// <param name="updatedBy"></param>
        /// <param name="updatedByName"></param>
        /// <returns></returns>
        Task<ResultData<string>> PushRoomInfo(int hotelId, bool compareMd5, int updatedBy, string updatedByName);

        /// <summary>
        /// 查询推送信息结果
        /// </summary>
        /// <param name="hotelId"></param>
        /// <param name="updatedBy"></param>
        /// <param name="updatedByName"></param>
        /// <returns></returns>
        Task<ResultData<string>> QueryPushResult(int hotelId, int updatedBy, string updatedByName);
    }
}
